That function does actually sometimes return NULL and is documented to
do so, so handle that case in the renderers (by omitting the node).
cairo_surface_t *surface = gsk_cairo_node_get_surface (node);
int gl_min_filter = GL_NEAREST, gl_mag_filter = GL_NEAREST;
+ if (surface == NULL)
+ return;
+
get_gl_scaling_filters (node, &gl_min_filter, &gl_mag_filter);
/* Upload the Cairo surface to a GL texture */
break;
case GSK_CAIRO_NODE:
- op.type = GSK_VULKAN_OP_SURFACE;
- op.render.pipeline = gsk_vulkan_render_get_pipeline (render, GSK_VULKAN_PIPELINE_BLIT);
- g_array_append_val (self->render_ops, op);
+ if (gsk_cairo_node_get_surface (node) != NULL)
+ {
+ op.type = GSK_VULKAN_OP_SURFACE;
+ op.render.pipeline = gsk_vulkan_render_get_pipeline (render, GSK_VULKAN_PIPELINE_BLIT);
+ g_array_append_val (self->render_ops, op);
+ }
break;
case GSK_TEXTURE_NODE: